Automatic control systems are often implemented to control a process or system and thereby maintain a controlled variable (e.g. a temperature) at a desired value or setpoint. Example control systems include thermostats, cruise controls, robotic arms and autopilots. The most common type of controller is called the “PID” control which is named for the three main control operations performed by the control algorithm: proportional, integral, and derivative. The PID algorithm can be expressed as follows:C=KP*E+KI*∫E+KD*E′+b   EQ. 1
In Equation 1, C is the controller output, E is the error (which indicates how far from the setpoint that the process currently is), and the parameters KP, KI, KD are the user-selected gains for the “P,” “I,” “D” terms, and b is a user-selected constant bias (which is often, though not always, set to zero).
The first term on the right-hand side of the equation is called the proportional term “P.” Its value is a product of the error and the proportional gain KP. The proportional operation implements the following control strategy: the further away the process is from its setpoint (and thus the larger the magnitude of the error), the larger the magnitude of the proportional term, and thus the greater its effect on the controller's effort to return the error to zero. The closer the process is to its setpoint, the lesser this term's effect.
The second term is the integral term “I.” Its value is a product of the accumulated sum of all errors so far recorded times the integral gain KI. The integral term implements the following strategy: whenever errors persist in time, their accumulating impact on the integral will have a steadily increasing effect on the controller output. The effect of the integral term will continue to grow until the output is strong enough to return the process to its setpoint. When the process has reached its setpoint, the integral term will become constant and cause no further change in the output. Moreover, the PID controller can be configured so that any non-zero integral term (when the setpoint has been reached) will continue to drive the output so that the controller counteracts the accumulated error with an offsetting “error” in the other direction. Thus, if a controller is controlling the mixture of two fluids, an error that has caused a low flow condition of one of the fluids can be offset by the integral term adding enough of the missing fluid to counteract the previous low flow condition.
The third term is called the derivative term “D.” Its value is a product of the time derivative of the error signal and the derivative gain KD. This control action allows the controller to anticipate the value of the error in the very near future and incorporate this foresight into its calculations. When the error is unchanging, this term becomes zero. However, when the error is changing rapidly, the derivative term is quite large and drives the controller output in the direction that counteracts the likely future error.
The final term is called the bias “b,” and is set to whatever value the control command is supposed to have when the error is zero. Normally, the bias is designed to be zero. However, in some applications, it is desirable to have the flexibility to counteract biases (e.g., external influences that drive the error in a known manner).
In order to apply the PID algorithm to a given process, the control engineer typically finds workable values for the proportional, integral, and derivative gains KP, KI, and KD, respectively. The PID algorithm is often expressed in different, yet algebraically identical forms.
The PID algorithm accounts for around ninety percent of all process control applications. It nevertheless suffers from several limitations. First, it can be very difficult and time consuming to find the right values for each of the gains (i.e. KP, KI, and KD,), which are dynamically coupled. Tuning any one of them can upset the tuning of each of the others. Tuning all three together is thus a complex and often challenging problem. Configuring multiple PID controllers for simultaneous control of multiple-input, multiple-output (MIMO) processes is more challenging still. The dynamic interaction among different controlled variables in MIMO systems usually demands too much coordination among the controlling elements for PID controllers to work well in such parallel applications. MIMO problems often require more advanced methods.
More advanced control algorithms exist and are well-known. However, those methods are much more mathematically complex and require much more time and skill from the user to successfully implement. Therefore, a need exists for a simple process control algorithm, requiring very little set-up time and very little skill, yet capable of providing very robust control, and capable of easily controlling MIMO systems.